class BopType:
    Infantry, Vehicle, Aircraft = range(1, 4)


class ActionType:
    (
        Move,
        Shoot,
        GetOn,
        GetOff,
        Occupy,
        ChangeState,
        RemoveKeep,
        JMPlan,
        GuideShoot,
        StopMove,
        WeaponLock,
        WeaponUnFold,
        CancelJMPlan,
        Fork,
        Union,
        ChangeAltitude,
        ActivateRadar,
        EnterFort,
        ExitFort,
        LayMine,
    ) = range(1, 21)


class MoveType:
    Maneuver, March, Walk, Fly = range(4)


class BopSubType:
    (Tank, IFV, Infantry, Artillery, UGV, Drone, Helicopter, CruiseMissle, TransportHeli, ReconnaissanceVehicle,
     RadarVehicle, FortificationInf, FortificationVehi, Minelayer, MineClearance, AntiAircraftGun, AntiAircraftPlatoon,
     AntiAircraftVehi, PickupTruck) = range(19)


class MissionType:
    Attack, Defense, Reconnaissance = range(3)


class TerrainType:
    OpenLand, Forest, Resident, SoftLand, Water, Roadblock = range(6)


class ArmorType:
    NoArmor, Light, Medium, Heavy, Composit_ = range(5)


class BulletType:
    """ 弹药类型"""
    Convention, HeavyMissile, MediumMissile, LightMissile = [0, 100, 101, 102]


class ObservedType:
    """观察类型"""
    Vehicle, Infantry, LargeAircraft, LittleAircraft = range(4)  # 大型空中目标：直升机，小型空中目标：无人机、巡飞弹
    Medium, Large, Little = range(1, 4)


class MoveState:
    """机动状态"""
    Common, March, ChargeLevel1, ChargeLevel2, Shelter, HalfSpeed = range(6)

class BasicSpeed:
    """基础速度"""
    basic_speed = {0: 20, 1: 20, 2: 144, 3: 20, 4: 20, 5: 8, 6: 4, 7: 8, 8: 4, 9: 20, 10: 20, 13: 20, 14: 20, 15: 20,
                   16: 144, 17: 20, 18: 16}
